package com.asset.dispoal.business.appoint.api;

import com.asset.dispoal.business.appoint.dto.AppointDetailResponse;
import com.asset.dispoal.business.appoint.dto.AppointDownloadOrderRequest;
import com.asset.dispoal.business.appoint.dto.AppointInsertRequest;
import com.asset.dispoal.business.appoint.dto.AppointPageRequest;
import com.asset.dispoal.business.appoint.dto.AppointPageResponse;
import com.asset.dispoal.business.appoint.dto.CanAppointCaseRequest;
import com.asset.dispoal.business.appoint.dto.CanAppointCaseResponse;
import com.asset.dispoal.business.appoint.dto.QueryAppointCaseRequest;
import com.asset.dispoal.business.appoint.dto.QueryDropAppointRequest;
import com.asset.dispoal.business.appoint.dto.QueryWithdrawlPageRequest;
import com.asset.dispoal.business.appoint.dto.QueryWithdrawlPageResponse;
import com.asset.dispoal.business.bsCase.dto.BsCaseResponse;
import tech.mhuang.pacebox.springboot.protocol.Result;
import tech.mhuang.pacebox.springboot.protocol.data.PageVO;

import java.util.List;

/**
 * @author qr
 * @date 2022/5/17$
 */
public interface AppointService {


    Result<PageVO<CanAppointCaseResponse>> queryPageCanAppointCase(CanAppointCaseRequest request);

    Result insertAppoint(AppointInsertRequest request);

    Result<PageVO<AppointPageResponse>> queryPage(AppointPageRequest request);

    Result<List<BsCaseResponse>> queryDetailByAppointId(QueryAppointCaseRequest request);

    Result<List<AppointPageResponse>> queryDropAppoint(QueryDropAppointRequest request);

    Result<List<AppointPageResponse>> queryAppoint(QueryDropAppointRequest request);

    Result downloadOrder(AppointDownloadOrderRequest request);

    Result<PageVO<QueryWithdrawlPageResponse>> queryPageWithdrawal(QueryWithdrawlPageRequest request);

    Result<AppointDetailResponse> getById(String id);
}
